﻿/**
 * 
 * @file BrowserTableHandlerMaterialFluid.h
 * @brief 流体材料表格处理器 
 * @author LiBaojun (libaojunqd@foxmail.com)
 * @date 2024-12-05
 * 
 */
#ifndef _WIDGET_TABLEHANDLER_MATERIAL_FLUID_H___
#define _WIDGET_TABLEHANDLER_MATERIAL_FLUID_H___
 
#include "BrowserTableHandlerMaterialAbstract.h"

namespace Acoustics
{
    class FITKAcousticsMaterialsFluid;
}

namespace GUI
{
    /**
     * @brief 流体材料处理器
     * @author LiBaojun (libaojunqd@foxmail.com)
     * @date 2024-12-05
     */
    class GUIWIDGETAPI BrowserTableHandlerMaterialFluid :
        public BrowserTableHandlerMaterialAbstract
    {
    public:
        /**
         * @brief 构造函数
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-05
         */
        using BrowserTableHandlerMaterialAbstract::BrowserTableHandlerMaterialAbstract;
        /**
         * @brief Destroy the Browser Table Handler Material Fluid object
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-05
         */
        virtual ~BrowserTableHandlerMaterialFluid() = default;
        /**
         * @brief 更新表格，包含头与数据
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-05
         */
        void updateTable() override;
         /**
         * @brief 更新表格数据
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-05
         */
        void updateData() override;
    
    protected:
        /**
         * @brief 获取流体操作器
         * @return EventOper::OperAbstractMaterial* 
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-05
         */
        EventOper::OperAbstractMaterial* getMaterialOper() override;
        /**
         * @brief 是否允许批量修改
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-09
         */
        bool enableAttriSet() override;
        /**
         * @brief 编辑材料颜色
         * @param[i] button 点击的按钮
         * @param[i] mat  材料对象
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-19
         */
        void onEditItemColor(QPushButton* button, Acoustics::FITKAcousticsMaterialsFluid* mat);


    };
 
}


#endif
